首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Unity环境下RTMP推流+RTMP播放低延迟解决方案

    在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总 Unity环境下RTMP推流 Unity环境下,不管是camera还是窗体数据也好,主要是高效率的拿到原始数据,采集端可用的数据格式是RGB的,拿到之后,通过高效率的数据传递,发给封装后的原生SDK,完成数据编码和 Unity环境下RTMP|RTSP播放Unity环境下RTMP或RTSP直播播放我们前几年就有发布,并已应用在好多传统行业领域,比如教育或工业仿真或一些低延迟的控制场景。 相关博客: Windows平台Unity3d下如何同时播放多路RTSP或RTMP流 https://cloud.tencent.com/developer/article/1800633 如何在Unity3d 平台下低延迟播放RTMP或RTSP流 https://cloud.tencent.com/developer/article/1592731

    4.2K10发布于 2021-06-15
  • 来自专栏RTSP/RTMP直播相关

    Unity下如何实现RTMP或RTSP播放端录像?

    好多开发者问我们,Unity环境下,除了RTSP或RTMP播放,如果有录像诉求,怎么实现?实际上录像相对播放来说,更简单一些,因为不涉及到绘制,只要拉流下来数据,直接写mp4文件就好了。 本文以大牛直播SDK的Windows平台为例,大概介绍下如何实现Unity环境下的录制,Linux、Android、iOS平台实现也类似,都是原生接口,然后对接下就好:图片开始录像因为涉及到可能同时录制多路的场景 ,直接调用播放接口就好了。 NTSmartPlayerSDK.NT_SP_Close(videoctrl[sel].player_handle_); videoctrl[sel].player_handle_ = IntPtr.Zero; }}以上是Unity 平台RTMP或RTSP播放端录像相关接口设计和调用实例,感兴趣的开发者可以参考。

    50300编辑于 2023-09-11
  • 来自专栏RTSP/RTMP直播相关

    Unity低延迟RTSP|RTMP播放器开发指南

    概述与优势1.1 SDK功能特性1.1.1 支持协议与格式 支持RTMP、RTSP协议,兼容H.265、H.264视频格式及AAC、PCMA等音频格式,满足多样化播放需求。 Unity播放器架构设计2.1 核心模块划分2.1.1 PlayerInstance模块 管理单个播放实例的生命周期,负责视频播放、录制及视频帧回调。 核心技术架构设计4.1 原生模块与Unity的高效交互大牛直播SDK的核心优势在于其原生模块(Windows/Linux/Android/iOS)直接处理流媒体协议解析、解码和网络优化,仅将解码后的YUV /RGB数据通过回调接口传递给Unity,避免在Unity层处理复杂的协议栈和解码逻辑。 的Texture2D,避免每帧重建(通过is_need_init_texture_标志控制) 结语通过大牛直播SDK的深度集成与参数调优,开发者能够在Unity中构建毫秒级延迟的RTSP/RTMP播放

    96210编辑于 2025-02-20
  • 来自专栏RTSP/RTMP直播相关

    Unity下如何实现RTMP或RTSP流播放和录制

    技术背景在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程:通过Native RTSP或RTSP直播播放SDK回调RGB /YUV420/NV12等其中的一种未压缩的图像格式;Unity下创建相应的RGB/YUV420等Shader; Unity从各个平台获取图像数据来填充纹理即可。 Unity3D环境下,我们之前已覆盖以下模块:Windows平台RTMP直播推送模块(采集Unity窗体、摄像头或屏幕); Windows平台RTMP|RTSP直播播放模块; Linux平台RTMP 直播推送模块(采集Unity窗体、Unity声音); Linux平台RTMP|RTSP直播播放模块; Android平台RTMP直播推送模块(采集Unity窗体、麦克风或Unity声音); Android 平台RTMP|RTSP直播播放模块; iOS平台RTMP|RTSP直播播放模块。

    2.7K60编辑于 2022-12-24
  • 来自专栏RTSP/RTMP直播相关

    Windows平台Unity播放RTSP或RTMP如何开启硬解码?

    ​ 我们在做Windows平台Unity播放RTMP或RTSP的时候,遇到这样的问题,比如展会、安防监控等场景下,需要同时播放多路RTMP或RTSP流,这样对设备性能,提出来更高的要求。 虽然我们软解码,已经做的资源占有非常低了,但考虑到多路播放的情况,我们也设计了硬解码的接口,下面大概讲下,如何在Unity下开启硬解码: 图片 检测系统是否支持硬解码 /* * 检查是否支持 extern UInt32 NT_SP_SetH265HardwareDecoder(IntPtr handle, Int32 is_hardware_decoder, Int32 reserve); Unity 1 : 0, 0); 如果系统支持硬解码,开启后,可以明显看到CPU占用,会有一定的改善,在多路播放的场景下,还是非常必要,感兴趣的开发者,可以参考设计。

    77810编辑于 2023-08-25
  • 来自专栏RTSP/RTMP直播相关

    Unity3D下Linux平台播放RTSP或RTMP

    背景 尽管Windows平台有诸多优势,Linux平台的发展还是势不可挡,特别实在传统行业,然而Linux生态构建,总是差点意思,特别是有些常用的组件,本文基于已有的Linux平台RTSP、RTMP播放模块 ,构建Unity下的RTSP和RTMP直播播放。 技术实现 实际上,Unity层面这块没什么好介绍的,和Windows、Android、iOS平台一样,调用原生的播放模块,回调解码后的数据,在Unity绘制,主要的技术难点,还在原生的处理,也就是拉流、 先上个直观感受图,本视频以Windows平台采集秒表计时器窗体,然后编码打包传输到RTMP服务,Unity3D的Linux平台RTMP播放器拉流播放,整体延迟毫秒级。 Unity下,简单来说就是拉流解码回调,上层绘制,其实也没有那么复杂,需要注意的是DllImport的写法、之前C++结构体或枚举的转换、Unity3D对Linux的版本兼容等一些细节,对熟悉C#的开发者来说

    1.4K20编辑于 2022-04-01
  • 来自专栏RTSP/RTMP直播相关

    Linux平台UnityRTMP|RTSP低延迟播放器技术实现

    、网络自动重连等,RTMP支持扩展H265播放, RTSP也支持H265播放。 Linux原生的RTSP、RTMP播放模块这里我们不做赘述,本文主要讲的是如何在Linux平台构建Unity下的RTSP和RTMP低延迟直播播放。 技术实现国产操作系统和Linux平台下,Unity环境的播放器,和Windows、Android、iOS平台基础流程并无大的差异,简单来说,通过调用原生的播放模块,回调解码后的YUV或RGB数据,投递到 Unity侧,在Unity下完成绘制,这里就需要原生的RTMP、RTSP播放模块,拉流解码延迟非常低,数据投递效率非常高,无图无真相:Linux平台,我们是回调的YUV的数据,也就是 NT_SP_E_VIDEO_FRAME_FROMAT_I420 RTMP、RTSP直播播放器大概的实现参考,随着国产操作系统的推进,Linux下RTMP、RTSP高质量的播放器需求越来越大,Unity下,可以实现和Windows、Android等平台统一开发管理,

    48600编辑于 2024-06-18
  • 来自专栏RTSP/RTMP直播相关

    如何在Unity3d实现多路RTSP或RTMP播放

    好多开发者在做AR、VR或者教育类产品时,苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器,如果基于Unity3d完全重新开发一个播放器,代价大、而且周期长,不适合快速出产品 废话不多说,以Windows平台多路播放为例: 1.Native播放器吐RGB/YUV420/NV12等其中的一种未压缩的图像格式 比如Windows平台,我们回调YUV上来(NT_SP_E_VIDEO_FRAME_FROMAT_I420 ),本文以调用大牛直播SDK(Github)的Windows平台RTSP、RTMP播放器SDK为例,具体代码如下: public void Play(int sel) { Debug.LogError("sel: " + sel + " w:" + u3d_frame.width_ + "h:" + u3d_frame.height_); } } 3.Unity3D 具体播放效果如下 windows4player.png 总结 Unity3d下,做多路播放的话,首先确保调用的拉流解码数据的模块具备回调yuv/rgb数据能力,回上来后,再上层直接刷新显示即可,是不是没有你想的那么复杂

    2.5K00发布于 2021-03-12
  • 来自专栏RTSP/RTMP直播相关

    Unity实现高性能多实例RTSP|RTMP播放器技术实践

    Unity平台的优势与挑战Unity在多媒体应用中的优势 Unity作为一款强大的游戏开发引擎,具有高效的图形渲染能力和丰富的资源管理功能,能够很好地支持多媒体应用的开发。 整体架构设计废话不多说,先上实际测试时延,左侧用大牛直播SDK的Windows平台RTMP直播推送模块,采集毫秒计数器窗体,推RTMP到nginx服务器,右侧unity播放器,播放RTMP流,同时四路播放 功能列表: [支持播放协议]RTMP、RTSP; [多实例播放]支持多实例播放; [事件回调]支持网络状态、buffer状态等回调; [视频格式]支持RTMP扩展H.265,H.264; [音频格式]支持 在播放过程中,会通过回调函数OnVideoFrame获取视频帧数据,并将其渲染到Unity的Texture2D对象上,实现视频的显示。同时,还支持硬件解码功能,提高了播放性能。 随着人工智能技术的发展,在集成大牛直播SDK的Unity的RTSP|RTMP播放模块的时候,后续可以在播放器中引入智能播放和推荐功能。

    66700编辑于 2025-02-16
  • 来自专栏RTSP/RTMP直播相关

    Android平台Unity3D下如何同时播放多路RTMP|RTSP流?

    ​技术背景好多开发者,提到希望在Unity的Android头显终端,播放2路以上RTMP或RTSP流,在设备性能一般的情况下,对Unity下的RTMP|RTSP播放器提出了更高的要求。 实际上,我们在前几年发布Unity下直播播放模块的时候,就已经支持了Android多实例播放RTMP|RTSP,随着大家对这块的技术诉求和性能要求越来越高,我们需要持续考虑如何低资源占用的播放多实例流。 实现思路目前,我们是通过大牛直播SDK原生的RTMP|RTSP播放器,设置回调解码后的YUV或RGB数据,然后投递到Unity层,在Unity层做渲染。 中播放RTMP|RTSP流可能并不简单,因为Unity没有内置对RTMP|RTSP的直接支持。 以上是Unity下多路播放RTMP|RTSP的技术探讨,感兴趣的开发者,可以单独跟我沟通讨论。

    44720编辑于 2024-09-23
  • 来自专栏EasyNVR

    网页可以播放RTMP视频流?支持RTMP的网页播放

    我们知道多数监控摄像头都是支持RTMP协议的,当然公安部的摄像头是支持GB28181协议的,这个我们在本文不做过多赘述,我们来探讨一下网页播放RTMP视频流的播放器。 ? ? 网页可以播放RTMP视频流吗?当然是可以的,但是对于PC端来说,网页播放RTMP流媒体视频流将会承受更多的服务器压力,满足网页播放RTMP视频流有哪些要求,下文我们一起来看一下。 1.便捷。 我们研发的流媒体服务器自身支持对成功接入的摄像机实时视频进行7*24h录像,支持录像的检索与回放,并且支持网络硬盘录像机NVR按设备、通道、日期获取对应录像文件进行录像的检索与回放,无需安装各个安防厂商的视频播放插件 本文已经为大家介绍完毕啦,结论就是网页是能够播放RTMP视频流的,如果想体验网页播放RTMP视频流的流媒体服务器或者播放器,可以继续关注本栏目。

    7.9K20发布于 2020-05-04
  • 来自专栏技术综合

    Electron播放rtmp直播流

    方法一 直接转flv吧 方法二 使用flash 示例代码 如果直接前端放rtmp直播流, 则需要有flash, 而Chrome已经不再支持flash了, 所以得借助flash插件 1659969197107 搭环境 使用 vue-cli5 + vue-cli-plugin-electron-builder搭建, 具体看插件文档 播放器使用vue-video-player组件和videojs-flash插件 配置播放器 可以通过navigator.plugins来看flash插件有没有引入成功 image.png 然后引入组件, 配置直播流即可 <template> <div class="container /mp4', src: '<em>rtmp</em>://127.0.0.1/live/test', }], techOrder: ['flash', 'html5'] , poster: '', notSupportedMessage: '服务错误', //允许覆盖Video.js无法<em>播放</em>媒体源时显示的默认信息。

    6.3K30编辑于 2022-09-21
  • 来自专栏RTSP/RTMP直播相关

    如何在Unity3d平台下低延迟播放RTMP或RTSP流

    随着VR类、游戏类场景的快速发展,开发者对Unity3d低延迟的直播需求量越来越大,前两年,大牛直播SDK发布了Windows平台、Android平台和iOS平台的Unity3d RTMP和RTSP的播放 本文以Android平台为例,我们的实现:基于大牛直播SDK现有非常成熟的native RTMP和RTSP播放模块,回调解码后的原始数据,传递给Unity3d,实现相应的绘制即可,对应demo,可以参考 Unity3D创建相应的RGB/YUV420等Shader; 3.Unity3D从各个平台获取图像数据来填充纹理即可。 url.StartsWith("rtmp://") && ! "); } is_running = true; } 开始播放后,native模块,回调yuv/rgb数据,unity3d模块,做相应的绘制处理即可。

    3.8K50发布于 2020-03-02
  • 来自专栏RTSP/RTMP直播相关

    VR头显Unity下如何实现毫秒级延迟的RTMP或RTSP播放

    今天,我们主要介绍的是VR头显下,如何低延迟的实现RTMP或RTSP的播放。技术实现说了这么多,如何在VR头显端,尽可能的降低直播播放延迟呢? 常用的方法,比如可以用专门的播放器中间件,实现数据的拉流解码会数据回调,在unity下,优化数据处理和渲染。 以大牛直播SDK为例,我们在做UnityRTMP或RTSP直播播放的时候,大多场景对延迟和资源占有要求非常高,鉴于好多时候,特别是头显终端,性能可能不尽人意,需要播放的视频分辨率码率又高,如何高效率的实现低延迟的 RTMP或RTSP播放,是Unity下比较棘手的问题,特别是毫秒级延迟。 环境下的RTMP、RTSP直播播放,如果需要延迟和稳定性都靠谱,建议数据接收、解包解码回调yuv/rgb数据在原始native模块处理,然后把解码后的数据,高效率的投递到unity测,实现unity环境下的低延迟

    1K30编辑于 2023-09-12
  • 来自专栏音视频直播技术专家

    RTMP播放流媒体过程

    前言 RTMP协议规定,播放一个流媒体需要执行以下几个步骤: 建立一个网络连接(NetConnection),网络连接代表RTMP服务器端和客户端之间建立真正的网络连接。 播放网络流 在RTMP服务器端对于每一个网络媒体流都建立了一个状态机,包括以下几个状态: 握手态; 连接态; 媒体流已建立态; 播放态; RTMP通过命令来变更状态机。并在每个状态下做相应的工作。 播放(Play) 客户端发送消息“播放”(play)到服务器。 接收到“播放”消息后,服务器发送设置块大小(ChunkSize)消息。 服务器发消息“streambegin”,告知客户端流ID。 之后,服务器发送客户端要播放的音频和视频数据。 ? 小结 以上就是 RTMP协议的播放过程。建立一个网络流的播放就是以下这几步。 握手; 连接; 建立网络流; 播放; 目前,已经有很多开源库实现了 RTMP 协议。其中比较著名的是 librtmp 库,它是 rtmpdump 工具的一部分。

    1.8K20发布于 2020-04-02
  • 来自专栏RTSP/RTMP直播相关

    RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型

    因此,在 Unity 中集成 RTSP/RTMP播放器,已经成为多数可视化方案的基础能力要求。 那么问题来了: ✅ 在 Unity 中实现 高性能、低延迟、跨平台 的 RTSP/RTMP 播放功能,开源方案真的够用吗? 一、 Unity播放 RTSP / RTMP 的典型技术挑战尽管 Unity 拥有强大的跨平台图形能力,但它并不原生支持任何流媒体解码与播放功能。 开发者通常需要自行调用底层系统 API 或集成第三方播放器实现 RTSP / RTMP播放。 推流与 RTSP|RTMP播放,可在 Unity 中同步播放多路画面;适合部署在校园网络、研究平台中,实现低延迟在线协同应用能力特征总结能力维度展现形式实时性强在各类场景中均能保持 100–250ms

    51700编辑于 2025-07-27
  • 来自专栏RTSP/RTMP直播相关

    Unity下如何播放8K超高分辨率的RTMP流?

    ​在Unity中使用RTMP播放播放8K流,需要考虑到多个方面的因素和技术要求。以下是一个详细的步骤和要点概述,帮助实现这一目标:1. 选择合适的RTMP播放器插件首先,需要选择一个支持8K视频流播放RTMP播放器插件。并非所有插件都支持8K分辨率,据我们了解,好多UnityRTMP播放器,连4K都非常吃力。 大牛直播SDK的SmartPlayer的Unity插件目前来看,RTMPRTMP直播流,无论是资源占用、延迟还是性能,是相对优异的。2. 软件兼容性:Unity版本和RTMP播放器插件需要兼容,同时操作系统也需要支持相应的视频解码技术,8K的视频流,肯定是需要硬解码,软解几乎不太现实。3. 可选的RTMP播放插件本文以大牛直播SDK的Android平台Unity3D RTSP|RTMP播放模块为例:开始播放:/* * SmartPlayerAndroidMono.cs * Author:

    65210编辑于 2024-09-09
  • 来自专栏RTSP/RTMP直播相关

    Unity3D下如何实现跨平台(WindowsLinuxAndroidiOS)低延迟的RTMP、RTSP播放

    ​ 技术背景好多开发者,希望我们能探讨下Unity平台RTMP或RTSP直播流数据播放和录制相关的模块,实际上,这块流程我们已经聊过多次,无非就是通过原生的RTMP或者RTSP模块,先从协议层拉取到数据 ;Windows平台RTMP|RTSP直播播放模块;Linux平台RTMP直播推送模块(采集Unity窗体、Unity声音),也可扩展轻量级RTSP服务模块;Linux平台RTMP|RTSP直播播放模块 ;Android平台RTMP直播推送模块(采集Unity窗体、麦克风或Unity声音);Android平台轻量级RTSP服务模块(采集Unity窗体、麦克风或Unity声音);Android平台RTMP 图片技术实现本文以Android平台RTMP、RTSP播放模块为例,介绍下Unity相关接口设置和逻辑处理:开始播放 public void Play() { if (is_running 下实现RTMP或RTSP无论是播放还是录像,甚至快照,说难不难,但是做好真的比较难,特别是移动端,Unity和原生层交互的时候,数据交互效率相对较低,需要尽可能减少拷贝。

    1.2K50编辑于 2023-05-24
  • 来自专栏RTSP/RTMP直播相关

    如何在RTMP推送端和RTMP播放端支持Enhanced RTMP H.265(HEVC)

    技术实现本文以大牛直播SDK的Windows平台RTMP直播推送和RTMP直播播放模块为例,考虑到老的扩展CodecID 12的场景依然使用,我们添加了个设置接口:RTMP推送端,对应文件为SmartPublisherSDK 0:enable*/NT_UINT32(NT_API *DisableEnhancedRTMP)(NT_HANDLE handle, NT_INT32 value);RTMP播放端,对应文件为SmartPlayerSDK = dts)*p |= 1;else*p |= 3; p++; *p++ = 'h';*p++ = 'v';*p++ = 'c';*p++ = '1'; //....RTMP播放端,对应的sample判断代码如下 推流URL,实现Enhanced RTMP推送,播放端拉流播放,整体延迟如下:可以看到,尽管开启了Enhanced RTMP,整体延迟还在毫秒级。 技术总结鉴于目前RTMP扩展265这块,大多还是用的老的CodecID设置为12的模式,如果需要支持新的Enhanced RTMP,除了推送端和播放端外,RTMP服务端也需要做响应的调整,来适配这种情况

    1.1K10编辑于 2024-03-05
  • 来自专栏RTSP/RTMP直播相关

    Unity平台如何实现RTSP转RTMP推送?

    技术背景Unity平台下,RTSP、RTMP播放RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去 RTSP转RTMP,在原生环境下老早已经有了,这里,其实就是把原生的挪到Unity即可,相关流程如下:图片技术实现本文以Windows平台为例,在RTSP播放模块的基础上,加个RTSP转RTMP推送模块 ,废话不多说,上代码:实时播放、停止播放/* * SmartPlayerWinMono.cs.cs * * Author: daniusdk.com * Created on 2017/04/19. 此外,关闭播放或拉流的时候,需要判断是不是处于拉流或播放状态,只要二者有一个还没关闭,实例就无法关闭。 环境下的RTSP转RTMP推送,相对RTMP、RTSP播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。

    63200编辑于 2023-07-14
领券